﻿using Abp.Application.Services;
using shenghua.Common.Dto;
using shenghua.Order.Orders.Dto;
using shenghua.Payment.Payments;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace shenghua.Order.Orders
{
    public interface IOrderAppService : IApplicationService
    {
        Task<OrderDto> GenerateOrder(GenerateOrderDto input);
        Task<OrderCoreDto> CalculateOrderData(GenerateOrderDto input);
        Task<OrderDto> Get(OrderNumberDto input);
        Task<SearchResultDto<OrderDto>> Search(SearchOrderDto input);
        Task<string> GeneratePaymentPage(GeneratePaymentPageDto input);
        Task CancelOrder(OrderNumberDto input);
        Task DeleteOrder(OrderNumberDto input);
        Task ConfirmReceipt(OrderNumberDto input);
        Task FinishOrder(OrderNumberDto input);
        Task<List<OrderLogDto>> GetAllOrderLogs(OrderNumberDto input);
        Task<List<RefundDto>> GetOrderRefunds(OrderNumberDto input);
        Task<List<RefundDto>> GetAllRefunds();
        Task EvaluateOrder(EvaluateOrderDto input);
        Task<List<OrderEvaluateDto>> GetOrderEvaluates(OrderNumberDto input);
    }
}
